<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!--
        1、Object.assign()方法主要是用于对象的合并，将源对象中的属性复制到目标对象中，返回目标对象。
           语法：
           Object.assign(target,...sources);
           解释：
           target: 表示的是目标对象
           source: 表示的源对象
           返回值：target 目标对象
    -->
    <script>
        // 情况1：目标对象和源对象之间没有同名的属性
        let target = { name: '张三' }
        let source = { age: 23 }
        let obj = Object.assign(target, source)
        // obj 其实就是target目标对象
        console.log(obj)
        console.log(target)
        console.log(source)
        console.log(obj === target) //true

        // 如果只是想要将两个或者是多个对象的属性合并在一起的话 而不改变原有对象的属性 则可以使用一个新对象作为目标对象
        let target2 = { name: '李四' }
        let source2 = { age: 18 }
        let obj2 = Object.assign({}, target2, source2)
        console.log(obj2)//{ name: '李四',age: 18 }
        console.log(target2)//{ name: '李四' }
        console.log(source2)//{ age: 18 }
        console.log(obj2 === target2) //false
    </script>
</body>

</html>